package fr.uniscol;

import java.util.List;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import fr.uniscol.model.BaseAnneeScolaire;
import fr.uniscol.model.IUniscolUser;
import fr.uniscol.mvc.SessionExpireeException;
import fr.uniscol.service.IAnneeScolaireService;

@Controller
public class AnneeScolaireController extends UniscolMainController {

    @Autowired
    private IAnneeScolaireService anneeScolaireService;

    @ModelAttribute("bases") 
    public List<BaseAnneeScolaire> getAllBases(HttpSession session) {
        return anneeScolaireService.getAllBasesByEtablissement(getUtilisateur(session).getEtablissement());
    }

    @RequestMapping("/bases")
    public String list(){
        return "bases";
    }

    @RequestMapping("/base.delete")
    public String detruire(@RequestParam("annee") int annee, Model model, HttpSession session){

        BaseAnneeScolaire baseASupprimer = new BaseAnneeScolaire();
        baseASupprimer.setAnnee(annee);
        baseASupprimer.setEtablissement(getUtilisateur(session).getEtablissement());

        if(anneeScolaireService.deleteAnneeScolaire(baseASupprimer)){
            alertSuccess("base.delete.ok", "L'année scolaire a été supprimée", model);
        }else{
            alertError("base.delete.error", "Echec de la suppression de l'année scolaire", model);
        }

        return "redirect:bases";
    }
}
